home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Playboy Electronic Datebook
/
Playboy Electronic Datebook - Disk 2.img
/
MISC.IN_
/
MISC.IN
Wrap
Text File
|
1993-10-22
|
27KB
|
677 lines
DECLARE SUB RemoveThemeFiles
DECLARE SUB MonthOptions
DECLARE FUNCTION ChangeDate () AS INTEGER
DECLARE FUNCTION GetInstallRes (szThemeRes$) AS STRING
DECLARE FUNCTION ChooseResolution (szDefaultRes$, ResList$) AS STRING
DECLARE FUNCTION MsgYesNo(szMsgPart1$, szMsgPart2$, szMsgCaption$) AS INTEGER
CONST YES = 1
CONST NO = 0
GLOBAL RES_TEXT_XGA$
GLOBAL RES_TEXT_VGA$
GLOBAL RES_TEXT_EGA$
'**
'** Remove -
'** Reads playboy.ini file to get all installed themes. Formats a
'** string to describe the ini line relating to the file.
'** Dialog is a list box, listing formatted strings. When item(s)
'** are highlighted and Remove button is pressed, the returned
'** strings are parsed to get back to the ini line, the file is
'** deleted from disk and the line is removed from the ini. Returns
'** when users presses Done.
'** Arguements - None
'** Returns - Nothing
'******************************************************************
SUB RemoveThemeFiles STATIC
'$IFDEF REMOVE
'$IFDEF DEBUG
DIM pStrBuf AS POINTER TO STRING *256
'$ENDIF
REMOVE_SETUP:
CursorSave% = ShowWaitCursor()
LISTITEMSIN$ = "ListItemsIn"
LISTITEMSOUT$ = "ListItemsOut"
THEMELIST$ = "ThemeList"
FOR i% = 1 TO iMaxNumTP% STEP 1
IF DoesIniKeyExist(ini$, INI_SEC_THEME_PACKS, INI_KEY_TP + LTRIM$(STR$(i%))) THEN
szThemePack$ = GetIniKeyString(ini$, INI_SEC_THEME_PACKS, INI_KEY_TP + LTRIM$(STR$(i%)))
IF DoesIniKeyExist(ini$, szThemePack$, INI_KEY_MASTER) THEN
AddListItem THEMELIST$, szThemePack$
IF DoesIniKeyExist(ini$, szThemePack$, INI_KEY_FILE) THEN
AddListItem LISTITEMSIN$, szThemePack$
ELSEIF DoesIniKeyExist(ini$, szThemePack$, INI_KEY_FILE + LTRIM$(STR$(0))) THEN
FOR f% = 0 TO iMaxNumTP% STEP 1 ''arbitrary limit
IF DoesIniKeyExist(ini$, szThemePack$, INI_KEY_FILE + LTRIM$(STR$(f%)) ) THEN
AddListItem LISTITEMSIN$, szThemePack$
EXIT FOR
END IF
NEXT f%
ELSE
THEMEFILES$ = "ThemeFiles"
t% = MakeListIniKeys(ini$, szThemePack$) ''function makes list from INI file, not INF file
''List will be created as ThemeFiles, it will be a list of keys for theme section
IF GetListLength(THEMEFILES$) THEN ''is list empty?
FOR j% = 1 TO GetListLength(THEMEFILES$) STEP 1
szFile$ = GetListItem(THEMEFILES$, j%)
szFileExpanded$ = ExpandMonthKey(szFile$)
IF LEN(szFileExpanded$) THEN ''if not month ref, don't add to list
AddListItem LISTITEMSIN$, szThemePack$ + ": " + szFileExpanded$ '' add formatted string to list
END IF
NEXT j%
END IF
IF GetListLength(THEMEFILES$) <> 0 THEN
'$IFDEF DEBUG
PRINT "REMOVING THEMEFILES$ SYMBOL"
'$ENDIF
RemoveSymbol THEMEFILES$
END IF
END IF
END IF
END IF
NEXT i%
RestoreCursor CursorSave%
REMOVEL1:
sz$ = UIStartDlg(CUIDLL$, REMOVEDLG, "FRemoveDlgProc", REMOVEHELP, HELPPROC$)
IF sz$ = "REMOVE" THEN
CursorSave% = ShowWaitCursor()
FOR i% = 1 TO GetListLength(LISTITEMSOUT$) STEP 1
szListItem$ = GetListItem(LISTITEMSOUT$, i%)
FOR t% = 1 TO GetListLength(THEMELIST$) STEP 1
szCurTheme$ = GetListItem(THEMELIST$, t%)
IF INSTR(szListItem$, szCurTheme$) <> 0 THEN
IF LEN(szListItem$) = LEN(szCurTheme$) THEN
IF DoesIniKeyExist(ini$, szCurTheme$, INI_KEY_FILE) THEN
szFilePath$ = GetIniKeyString(Ini$, szCurTheme$, INI_KEY_FILE)
IF DoesFileExist(szFilePath$, femReadWrite) THEN
RemoveFile szFilePath$, cmoNone
ELSE
imbRC% = DoMsgBox(szListItem$ + ERROR_REMOVE, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
END IF
RemoveIniKey Ini$, szListItem$, INI_KEY_FILE, cmoNone
ELSEIF DoesIniKeyExist(ini$, szCurTheme$, INI_KEY_FILE + LTRIM$(STR$(0))) THEN
FOR f% = 0 TO iMaxNumTP% STEP 1 ''arbitrary limit
IF DoesIniKeyExist(ini$, szCurTheme$, INI_KEY_FILE + LTRIM$(STR$(f%)) ) THEN
szFilePath$ = GetIniKeyString(Ini$, szCurTheme$, INI_KEY_FILE + LTRIM$(STR$(f%)))
IF DoesFileExist(szFilePath$, femReadWrite) THEN
RemoveFile szFilePath$, cmoNone
ELSE
imbRC% = DoMsgBox(szListItem$ + ERROR_REMOVE, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
END IF
RemoveIniKey Ini$, szCurTheme$, INI_KEY_FILE + LTRIM$(STR$(f%)), cmoNone
END IF
NEXT f%
END IF
EXIT FOR
ELSEIF LTRIM$(MID$(szListItem$, (LEN(szCurTheme$) + 1),1)) = ":" THEN
szExpandedIniKey$ = LTRIM$(MID$(szListItem$, LEN(szCurTheme$) + 2)) ''' account for ": "
'$IFDEF DEBUG
PRINT "szExpandedIniKey$ = " + szExpandedIniKey$
'$ENDIF
IF szExpandedIniKey$ = EXPANDED_COLORDATA THEN
szIniKey$ = INI_KEY_COLORDATA
ELSE
szIniKey$ = MID$(szExpandedIniKey$, 1,3)+MID$(szExpandedIniKey$, 5,4)
SELECT CASE RTRIM$(MID$(szExpandedIniKey$, 10))
CASE EXPANDED_XGA
szIniKey$ = szIniKey$ + INI_KEY_XGA
CASE EXPANDED_VGA
szIniKey$ = szIniKey$ + INI_KEY_VGA
CASE EXPANDED_EGA
szIniKey$ = szIniKey$ + INI_KEY_EGA
CASE ELSE
szIniKey$ = szIniKey$ + INI_KEY_IND
END SELECT
'$IFDEF DEBUG
PRINT "szIniKey$ = " + szIniKey$
'$ENDIF
END IF
szFilePath$ = GetIniKeyString(Ini$, szCurTheme$, szIniKey$)
'$IFDEF DEBUG
PRINT "szFilePath$ = " + szFilePath$
'$ENDIF
IF LEN(szFilePath$) <> 0 THEN
IF DoesFileExist(szFilePath$, femReadWrite) THEN
RemoveFile szFilePath$, cmoNone
ELSE
imbRC% = DoMsgBox(szListItem$ + ERROR_REMOVE, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
END IF
ELSE
imbRC% = DoMsgBox(szListItem$ + ERROR_REMOVE, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
END IF
RemoveIniKey Ini$, szCurTheme$, szIniKey$, cmoNone
EXIT FOR
END IF
END IF
NEXT t%
NEXT i%
RestoreCursor CursorSave%
RemoveSymbol LISTITEMSIN$
RemoveSymbol LISTITEMSOUT$
IF GetListLength(THEMELIST$) <> 0 THEN
RemoveSymbol THEMELIST$
END IF
GOTO REMOVE_SETUP
ELSEIF sz$ = "REACTIVATE" THEN
GOTO REMOVEL1
ELSE ''CONTINUE
UIPop 1
RemoveSymbol LISTITEMSIN$
RemoveSymbol LISTITEMSOUT$
IF GetListLength(THEMELIST$) <> 0 THEN
RemoveSymbol THEMELIST$
END IF
END IF
'$ENDIF
END SUB
'**
'** MonthOptions -
'** If theme type is SINGLEFILE a formatted string describing
'** the file (num months, etc) is listed. User can select to
'** install the data file by this. If multi-file months type
'** theme, a string is added for each month. The user can
'** select the individual months to install.
'** The date can be changed ONLY if it is a original install
'** for the theme. If not the dlgproc will hide the date button
'** and change the text. Only when OK is selected are the global
'** month options changed.
'** Arguements - None
'** Returns - Nothing
'******************************************************************
SUB MonthOptions STATIC
'$IFDEF MONTHS
DIM NewOpt%(24)
FOR i% = 0 TO (iNumFiles%-1) STEP 1
NewOpt%(i%) = MONTHOPT(i%)
NEXT i%
DO_MONTHS_SETUP:
CursorSave% = ShowWaitCursor()
'' Debug PRINT start_m%
'' Debug PRINT start_y%
IF (bThemeFileType% = SINGLEFILE) THEN
MONTHLIST$(0) = THEME$ + " - " + LTRIM$(STR$(iNumMonths%)) + " " + MONTHS
ELSEIF(bThemeFileType% = DATAFILE) THEN
MONTHLIST$(0) = THEME$
ELSE
FOR i% = 0 TO (iNumFiles%-1) STEP 1
CUR_MON_YEAR$ = Month_Year_ToStr((start_m%+i%), (start_y%), " ") '' add space - 1
''debug
'' Debug PRINT CUR_MON_YEAR$
MONTHLIST$(i%) = THEME$+" "+CUR_MON_YEAR$
NEXT i%
END IF
LISTITEMSIN$ = "ListItemsIn"
LISTITEMSOUT$ = "ListItemsOut"
FOR i% = 0 TO (iNumFiles%-1) STEP 1
AddListItem LISTITEMSIN$, MONTHLIST(i%)
IF NewOpt%(i%) = TRUE THEN
AddListItem LISTITEMSOUT$, MONTHLIST$(i%)
'' Debug PRINT MONTHLIST$(i%)
END IF
NEXT i%
''FOR i% = 0 TO (iNumFiles%-1) STEP 1
''NEXT i%
IF (bThemeExists%) OR (bNoExpire% = TRUE) THEN
SetSymbolValue "ButtonState", "OFF"
ELSE
SetSymbolValue "ButtonState", "ON"
END IF
RestoreCursor CursorSave%
DO_MONTHSL1:
EX_TEXT1$ = "Text1"
IF (bNoExpire% = TRUE) THEN
SetSymbolValue EX_TEXT1$, DLG_MONTH_COMMENT
ELSE
SetSymbolValue EX_TEXT1$, DLG_TEXT_MONTH_EXPIRE + szExpireText$ + DLG_TEXT_MONTH_EXPIREPT2
END IF
sz$ = UIStartDlg(CUIDLL$, MONTHLISTDLG, "FMultiDlgProc", MONTHHELP, HELPPROC$)
IF GetListLength(ListItemsOut) > 0 THEN
CursorSave% = ShowWaitCursor()
FOR i% = 0 TO (iNumFiles%-1) STEP 1
FOR j% = 1 TO GetListLength(ListItemsOut) STEP 1
IF MONTHLIST$(i%) = GetListItem(ListItemsOut, j%) THEN
NewOpt%(i%) = TRUE
EXIT FOR
ELSE
NewOpt%(i%) = FALSE
END IF
NEXT j%
NEXT i%
RestoreCursor CursorSave%
ELSE
FOR j% = 0 TO (iNumFiles%-1) STEP 1
NewOpt%(j%) = FALSE
NEXT j%
END IF
IF sz$ = "CONTINUE" THEN
UIPop 1
FOR i% = 0 TO (iNumFiles%-1) STEP 1
MONTHOPT%(i%) = NewOpt%(i%)
NEXT i%
RemoveSymbol LISTITEMSIN$
RemoveSymbol LISTITEMSOUT$
ELSEIF sz$ = "REACTIVATE" THEN
GOTO DO_MONTHSL1
ELSEIF sz$ = "DATE" THEN
bDateChanged% = ChangeDate()
IF bDateChanged% = TRUE THEN
RemoveSymbol LISTITEMSIN$
RemoveSymbol LISTITEMSOUT$
GOTO DO_MONTHS_SETUP
ELSE
GOTO DO_MONTHSL1
END IF
ELSE
UIPop 1
RemoveSymbol LISTITEMSIN$
RemoveSymbol LISTITEMSOUT$
END IF
'$ENDIF
END SUB
'**
'** ChangeDate -
'** saves current start date, brings up simple edit dialog.
'** Value returned from edit control is validated. Errors if
'** value is not a valid date or is out of range. Otherwise,
'** returns.
'** Arguements - None
'** Returns - TRUE if date has changed
'** FALSE if date hasn't changed
'***************************************************************************
FUNCTION ChangeDate () STATIC AS INTEGER
ChangeDate = FALSE
'$IFDEF CHANGEDATE
old_start_m% = start_m%
old_start_y% = start_y%
ASKDATEL1:
IF bDDOnDay% = TRUE THEN
'$IFDEF INTL
SetSymbolValue "EditTextIn", PAD(LTRIM$(STR$(start_d%))) + DATE_SEPARATOR + PAD(LTRIM$(STR$(start_m%))) + DATE_SEPARATOR + LTRIM$(STR$(start_y%))
SetSymbolValue "EditFocus", "END"
sz$ = UIStartDlg(CUIDLL$, STARTDATE_INTL, "FEditDlgProc", DATEHELP_INTL, HELPPROC$)
'$ELSE
SetSymbolValue "EditTextIn", PAD(LTRIM$(STR$(start_m%))) + DATE_SEPARATOR + PAD(LTRIM$(STR$(start_d%))) + DATE_SEPARATOR + LTRIM$(STR$(start_y%))
SetSymbolValue "EditFocus", "END"
sz$ = UIStartDlg(CUIDLL$, STARTDATE, "FEditDlgProc", DATEHELP, HELPPROC$)
'$ENDIF
ELSE
SetSymbolValue "EditTextIn", PAD(LTRIM$(STR$(start_m%))) + DATE_SEPARATOR + LTRIM$(STR$(start_y%))
SetSymbolValue "EditFocus", "END"
sz$ = UIStartDlg(CUIDLL$, STARTDATE_NODAY, "FEditDlgProc", DATEHELP_NODAY, HELPPROC$)
END IF
IF sz$ = "CONTINUE" THEN
IF bDDOnDay% = TRUE THEN
szDateErrMsg$ = ERROR_DATE_DAY
ELSE
szDateErrMsg$ = ERROR_DATE_NODAY
END IF
szNewDate$ = LTRIM$(RTRIM$(GetSymbolValue("EditTextOut")))
IF (szNewDate <> GetSymbolValue("EditTextIn")) THEN
CursorSave% = ShowWaitCursor()
ChangeDate = TRUE
IF bDDOnDay% = TRUE THEN
IF LEN(szNewDate$) <> 10 THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
ELSE
IF LEN(szNewDate$) <> 7 THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
END IF
IF bDDOnDay% = TRUE THEN
'$IFDEF INTL
new_d% = VAL(MID$(szNewDate$, 1, 2))
new_m% = VAL(MID$(szNewDate$, 4, 2))
new_y% = VAL(MID$(szNewDate$, 7, 4))
'$ELSE
new_m% = VAL(MID$(szNewDate$, 1, 2))
new_d% = VAL(MID$(szNewDate$, 4, 2))
new_y% = VAL(MID$(szNewDate$, 7, 4))
'$ENDIF
ELSE
new_m% = VAL(MID$(szNewDate$, 1, 2))
new_y% = VAL(MID$(szNewDate$, 4, 4))
END IF
IF (new_m% = 0) OR (new_m% < 1) OR (new_m% >12) THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
IF (new_y% = 0) THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
ELSEIF (new_y% < 1600) THEN
new_y% = 1600
ELSEIF (new_y% > 9999) THEN
new_y% = 9999
END IF
IF bDDOnDay% = TRUE THEN
IF (new_m% = 1) OR (new_m% = 3) OR (new_m% = 5) OR (new_m% = 7) OR (new_m% = 8) OR (new_m% = 10) OR (new_m% = 12) THEN
IF (new_d% < 1) OR (new_d% > 31) THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
ELSEIF (new_m% = 4) OR (new_m% = 6) OR (new_m% = 9) OR (new_m% = 11) THEN
IF (new_d% < 1) OR (new_d% > 30) THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
ELSEIF (new_m% = 2) THEN
IF (new_y% MOD 4) = 0 THEN '' is not leap year, approx doesn't do full leap year checking
IF (new_d% < 1) OR (new_d% > 29) THEN
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
ELSE
IF (new_d% < 1) OR (new_d% > 28) THEN '' is leap year
imbRC% = DoMsgBox(szDateErrMsg$, ERROR_CAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
RestoreCursor CursorSave%
GOTO ASKDATEL1
END IF
END IF
END IF
start_d% = new_d%
END IF
start_m% = new_m%
start_y% = new_y%
'' Recalc end date
IF bDDOnDay% = TRUE THEN
end_d% = start_d%
END IF
end_m% = (start_m%+iNumMonths%-1) MOD 12 ''DDD is zero based month
IF (start_m%+iNumMonths%) > 12 THEN
end_y% = start_y% + 1
ELSE
end_y% = start_y%
END IF
RestoreCursor CursorSave%
END IF
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKDATEL1
END IF
UIPop 1
'$ENDIF
END FUNCTION
'**
'** ChangeDate -
'** saves current start date, brings up simple edit dialog.
'** Value returned from edit control is validated. Errors if
'** value is not a valid date or is out of range. Otherwise,
'** returns.
'** Arguements - None
'** Returns - TRUE if date has changed
'** FALSE if date hasn't changed
'***************************************************************************
FUNCTION GetInstallRes (szThemeRes$) STATIC AS STRING
ResList$ = "ResList"
FOR i% = 1 TO MAX_NUM_RES STEP 1
szRes$ = GetNthFieldFromIniString (szThemeRes$, i%)
IF szRes$ <> "" THEN
AddListItem ResList$, szRes$
ELSE
EXIT FOR
END IF
NEXT i%
iX% = GetScreenWidth()
iY% = GetScreenHeight()
IF iX% >= 1024 THEN
szUserRes$ = INI_KEY_XGA
ELSEIF iX% >= 640 THEN
IF iY% >= 480 THEN
szUserRes$ = INI_KEY_VGA
ELSE
szUserRes$ = INI_KEY_EGA
END IF
ELSE
szUserRes$ = INI_KEY_VGA
END IF
szInstallResID$ = ChooseResolution(szUserRes$, ResList$)
GetInstallRes = szInstallResID$
END FUNCTION
'**
'** ChooseResolution -
'** Displays dialog asking the user to choose the resolution
'** to install. Only displays options for the resolutions
'** supported by the theme pack. If only res supported is
'** independent, then no dialog is given and ind gets installed.
'** Arguements - szDefaultRes$ - resolution currently being displayed.
'** ResList$ - symbol to list of supported resolutions
'** Returns - Final resolution choice as String of ResID. If "" then
'** EXIT button was pressed. If "0" then no resolutions
'** are supported.
'***************************************************************************
FUNCTION ChooseResolution (szDefaultRes$, ResList$) STATIC AS STRING
DIM pStrBuf AS POINTER TO STRING *256
RadioText$ = "RadioText"
RadioDefault$ = "RadioDefault"
IniKeyList$ = "IniKeyList"
IF GetListLength(ResList$) < 1 THEN
ResChoice$ = "0"
GOTO RES_CHOICE_DONE
ELSEIF GetListLength(ResList$) = 1 THEN
ResChoice$ = GetListItem(ResList$, 1)
GOTO RES_CHOICE_DONE
ELSE
FOR i% = 1 TO GetListLength(ResList$) STEP 1
szRes$ = GetListItem(ResList$, i%)
SELECT CASE szRes$
CASE INI_KEY_IND
ResChoice$ = INI_KEY_IND
GOTO RES_CHOICE_DONE
CASE INI_KEY_XGA
AddListItem IniKeyList$, INI_KEY_XGA
AddListItem RadioText$, RES_TEXT_XGA$
CASE INI_KEY_VGA
AddListItem IniKeyList$, INI_KEY_VGA
AddListItem RadioText$, RES_TEXT_VGA$
CASE INI_KEY_EGA
AddListItem IniKeyList$, INI_KEY_EGA
AddListItem RadioText$, RES_TEXT_EGA$
CASE ELSE
AddListItem IniKeyList$, INI_KEY_VGA
AddListItem RadioText$, RES_TEXT_VGA$
END SELECT
NEXT i%
WHILE (GetListLength(RadioText$) < 3)
AddListItem RadioText$, ""
WEND
FOR i% = 1 TO GetListLength(IniKeyList$) STEP 1
SELECT CASE (GetListItem(IniKeyList$, i%))
CASE INI_KEY_XGA
iXGA% = i%
CASE INI_KEY_VGA
iVGA% = i%
CASE INI_KEY_EGA
iEGA% = i%
PRINT "EGA IS AT " + STR$(iEGA%)
END SELECT
NEXT i%
SELECT CASE szDefaultRes$
CASE INI_KEY_XGA
IF iXGA% <> 0 THEN
SetSymbolValue RadioDefault$, LTRIM$(STR$(iXGA%))
ELSEIF iVGA% <> 0 THEN
bNoResMatch% = TRUE
SetSymbolValue RadioDefault$, LTRIM$(STR$(iVGA%))
ELSEIF iEGA% <> 0 THEN
bNoResMatch% = TRUE
SetSymbolValue RadioDefault$, LTRIM$(STR$(iEGA%))
ELSE
ResChoice$ = "0"
GOTO RES_CHOICE_DONE
END IF
CASE INI_KEY_VGA
IF iVGA% <> 0 THEN
SetSymbolValue RadioDefault$, LTRIM$(STR$(iVGA%))
ELSEIF iEGA% <> 0 THEN
bNoResMatch% = TRUE
SetSymbolValue RadioDefault$, LTRIM$(STR$(iEGA%))
ELSE
ResChoice$ = "0"
GOTO RES_CHOICE_DONE
END IF
CASE INI_KEY_EGA
IF iEGA% <> 0 THEN
SetSymbolValue RadioDefault$, LTRIM$(STR$(iEGA%))
ELSE
ResChoice$ = "0"
GOTO RES_CHOICE_DONE
END IF
CASE ELSE
ResChoice$ = "0"
GOTO RES_CHOICE_DONE
END SELECT
END IF
''IF bNoResMatch% = TRUE THEN
'' imbRC% = DoMsgBox(NO_RES_MATCH, RES_ERROR, MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
''END IF
CHOOSE_RES_DLG:
sz$ = UIStartDlg(CUIDLL$, RESCHOICES, "FRadioDlgProc", RESHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
ResChoice$ = GetListItem(IniKeyList$, VAL(GetSymbolValue("ButtonChecked")))
IF ResChoice$ <> szDefaultRes$ THEN
ALLOCATE pStrBuf, 2
SELECT CASE szDefaultRes$
CASE INI_KEY_XGA
szCurRes$ = EXPANDED_XGA
CASE INI_KEY_VGA
szCurRes$ = EXPANDED_VGA
CASE INI_KEY_EGA
szCurRes$ = EXPANDED_EGA
CASE ELSE
szCurRes$ = RES_UNKNOWN
END SELECT
pStrBuf[TEXT1] = CONFIRM_RES_DLGTEXT_1 + " (" + szCurRes$ + "). " + CONFIRM_RES_DLGTEXT_1Pt2
pStrBuf[TEXT2] = CONFIRM_RES_DLGTEXT_2+CONFIRM_RES_DLGTEXT_2Pt2
DlgCaption$ = "DlgCaption"
SetSymbolValue DlgCaption$, CONFIRM_RES_DLGCAPTION
ReplaceListItem CONFIRMTEXTIN$, 1, pStrBuf[TEXT1]
ReplaceListItem CONFIRMTEXTIN$, 2, pStrBuf[TEXT2]
DEALLOCATE pStrBuf
CONFIRM_RES:
sz$ = UIStartDlg(CUIDLL$, CBYESNO, "FInfoXDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO CONFIRM_RES
ELSE ''No
UIPop 1
GOTO CHOOSE_RES_DLG
END IF
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO CHOOSE_RES_DLG
ELSE
ResChoice$ = ""
UIPop 1
END IF
RES_CHOICE_DONE:
ChooseResolution = ResChoice$
END FUNCTION
'**
'** MsgYesNo -
'** Displays dialog asking the user to choose yes or no
'**
'** Arguements - szMsgPart1$ - first part of message
'** szMsgPart2$ - second part of message
'** szMsgCaption$ - dialog caption
'** Returns - YES = 1 - user pressed YES
'** NO = 0 - user pressed NO
'**
'***************************************************************************
FUNCTION MsgYesNo(szMsgPart1$, szMsgPart2$, szMsgCaption$) STATIC AS INTEGER
DIM pDlgTxt AS POINTER TO STRING *256
INIT_DIALOG:
ALLOCATE pDlgTxt, 2
pDlgTxt[TEXT1] = szMsgPart1$
pDlgTxt[TEXT2] = szMsgPart2$
DlgCaption$ = "DlgCaption"
SetSymbolValue DlgCaption$, szMsgCaption$
ReplaceListItem CONFIRMTEXTIN$, 1, pDlgTxt[TEXT1]
ReplaceListItem CONFIRMTEXTIN$, 2, pDlgTxt[TEXT2]
DEALLOCATE pDlgTxt
sz$ = UIStartDlg(CUIDLL$, CBYESNO, "FInfoXDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
MsgYesNo = YES
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO INIT_DIALOG
ELSE
MsgYesNo = NO
UIPop 1
END IF
END FUNCTION